#!/bin/bash

# 构建脚本 - 编译X86和ARM64架构的二进制文件
# 输出文件将保存在result目录中，文件名包含架构类型

# 设置输出目录
OUTPUT_DIR="result"
mkdir -p ${OUTPUT_DIR}

# 定义架构和对应的环境变量
declare -A ARCHITECTURES=(
    ["amd64"]="x86_64"
    ["arm64"]="aarch64"
)

# 编译函数
build_binary() {
    local arch=$1
    local output_name=$2
    
    echo "正在编译 ${arch} 架构的二进制文件..."
    
    # 设置编译环境变量
    export GOOS=linux
    export GOARCH=${arch}
    
    # 执行编译
    if go build -o ${OUTPUT_DIR}/${output_name} .; then
        echo "✅ 成功编译 ${OUTPUT_DIR}/${output_name}"
    else
        echo "❌ 编译 ${arch} 架构失败"
        exit 1
    fi
}

# 为每个架构编译二进制文件
for arch in "${!ARCHITECTURES[@]}"; do
    # 生成文件名 (k8stools-架构)
    filename="k8stools-${arch}"
    build_binary ${arch} ${filename}
done

echo "🎉 所有架构的二进制文件编译完成，输出在 ${OUTPUT_DIR} 目录中"